/**
 * This file is released under the GNU General Public License.
 * Refer to the COPYING file distributed with this package.
 *
 * Copyright (c) 2008-2009 WURFL-Pro srl
 */
package net.sourceforge.wurfl.core;

import java.util.Map;

/**
 * Holds the capabilities values for a single Device.
 * 
 * @author WURFL-PRO SRL, Rome, Italy
 * @version $Id: CapabilitiesHolder.java 1045 2009-03-09 15:52:53Z filippo.deluca $
 */
public interface CapabilitiesHolder {

	/**
	 * Return the capability value by capability name for single Device
	 * instance.
	 * 
	 * @param capabilityName
	 *            The name of capability to get value.
	 * @return The value of capability capabilityName
	 * @throws CapabilityNotDefinedException
	 *             If the capability capabilityName is not defined in WURFL.
	 */
	String getCapabilityValue(String capabilityName)
			throws CapabilityNotDefinedException;

	/**
	 * Returns all the capabilities for a single device.
	 * 
	 * @return Map containing couple name-value of single Device.
	 */
	public Map getAllCapabilities();

}
